package com.xinqi.modules.sys.document.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.base.response.Param;
import com.xinqi.modules.sys.document.dto.req.DocumentManagerCreateDTO;
import com.xinqi.modules.sys.document.dto.req.DocumentManagerDeleteDTO;
import com.xinqi.modules.sys.document.dto.req.DocumentManagerQueryDTO;
import com.xinqi.modules.sys.document.dto.req.DocumentManagerTreeDTO;
import com.xinqi.modules.sys.document.dto.req.DocumentManagerUpdateDTO;
import com.xinqi.modules.sys.document.dto.rsp.DocumentManagerResultDTO;
import com.xinqi.modules.sys.document.dto.rsp.DocumentManagerTreeResultDTO;

import java.util.List;

/**
 * 文档管理表服务层
 *
 * @author: gzy
 * @date: 2023/05/28
 */
public interface DocumentManagerService {
    /**
     * 分页查询 文档管理表数据
     */
    PageInfo<DocumentManagerResultDTO> page(Param pageable, DocumentManagerQueryDTO query);

    /**
     * 查询 文档管理表数据
     */
    List<DocumentManagerResultDTO> find(DocumentManagerQueryDTO query);

    /**
     * 根据id查询 文档管理表数据
     */
    DocumentManagerResultDTO findById(Long id);

    /**
     * 新增 文档管理表数据
     */
    Long insert(DocumentManagerCreateDTO dto);

    /**
     * 根据id修改 文档管理表数据
     */
    Boolean updateById(DocumentManagerUpdateDTO dto);

    /**
     * 根据id删除 文档管理表数据
     */
    Boolean deleteById(Long id);

    /**
     * 根据id删除 文档管理表数据
     */
    Boolean deleteById(DocumentManagerDeleteDTO dto);

    List<DocumentManagerResultDTO> findAllByParentId(Long parentId);

    List<DocumentManagerTreeResultDTO> findTree(DocumentManagerTreeDTO dto);

    List<DocumentManagerResultDTO> findAll(DocumentManagerQueryDTO dto);
}
